package cn.lzy.profile;

import cn.lzy.profile.config.JavaConfig;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.core.env.ConfigurableEnvironment;

/**
 * @Description Java配置测试类
 * @Author lzy
 * @Date 2023/11/29 14:15
 * @Version
 **/
public class Test01JavaDemo {

    public static void main(String[] args) {
        // 这里注意，不能添加配置类，如果添加了配置类，则 refresh 方法会被调用，而 Spring 容器的初始化则正是从这里开始的
        // 此时，我们还没设置当前系统环境
        AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
        ConfigurableEnvironment environment = ctx.getEnvironment();
        // 设置系统环境
        environment.addActiveProfile("prod");
        // 注册配置类
        ctx.register(JavaConfig.class);
        // 刷新，此时才开始初始化容器
        ctx.refresh();
        DataSource dataSource = ctx.getBean(DataSource.class);
        System.out.println("dataSource = " + dataSource);
    }

}
